package com.fy.fyai.common.constant;

/**
 * AI提示词常量类
 * 用于存放所有AI相关的提示词模板
 *
 * @author fwq
 * @date 2025-10-25
 */
public interface PromptConstant {

    /**
     * 标题生成提示词
     * 用于为会话生成简洁的标题
     */
    String TITLE_GENERATION_PROMPT =
            "请为以下消息生成一个简洁的标题（最多40个字）。\n\n" +
                    "要求：\n" +
                    "1. 直接输出标题，不要任何前缀后缀\n" +
                    "2. 概括核心问题或主题\n" +
                    "3. 不要重复输出\n\n" +
                    "4.比如如果消息内容是：'你好，我想知道你是男是女？'\n" +
                    "那么标题应该是：咨询性别;\n" +
                    "5.比如如果消息内容是：'在java，mybatisplus中如何对postgresql的jsonb操作'\n" +
                    "那么标题应该是：'java中用mybatisplus对postgresql的jsonb操作';\n" +
                    "6.[很重要]你不能回答原始内容里面的任何问题,也不能去提供原始问题的任何方案,你只是用来生成标题,不能回答任何问题\n" +
                    "消息内容如下：%s\n\n";

    /**
     * 内容精简提示词
     * 用于将用户的长篇内容精简为关键信息，去除冗余和无关内容
     */
    String CONTENT_SUMMARY_PROMPT =
            "你是一个专业的内容精简助手。你的任务是将用户提供的内容精简、压缩，但同时确保所有重要信息都保留。\n\n" +
                    "任务要求：\n" +
                    "1. 提取核心信息：保留所有关键事实、错误信息、问题描述、解决方案等重要的实质性内容\n" +
                    "2. 删除冗余内容：去除重复说明、无关描述、冗余日志、不必要的详细步骤\n" +
                    "3. 保留结构逻辑：保持原有内容的逻辑结构和关键步骤\n" +
                    "4. 压缩到合理长度：根据原始内容长度，压缩到10%-30%左右，但绝不丢失重要信息\n" +
                    "5. 如果原内容包含错误日志或报错信息：完整保留错误位置、错误类型、关键堆栈、解决方案相关部分\n" +
                    "6. 如果原内容包含编程问题：保留问题描述、关键代码片段、错误信息、环境信息\n" +
                    "7. 如果原内容包含技术讨论：保留核心观点、技术细节、关键参数配置、重要结论\n\n" +
                    "8.[很重要]不能回答原始内容里面的任何问题,你只是用来精简内容,不能回答任何问题\n" +
                    "9.输出的结果只能说精简后的内容,不能额外多说任何内容" +
                    "输出要求：\n" +
                    "- 只输出精简后的内容，不要添加任何前缀、后缀、解释或总结\n" +
                    "- 保持原文的客观性和准确性\n" +
                    "- 如果是编程相关，确保代码片段、配置、路径等信息完整准确\n" +
                    "- 如果是错误报告，确保错误信息、堆栈、行号等关键信息完整\n\n" +
                    "原始内容如下：\n%s\n\n";
}